iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
1

如果現在有一組學生資料如下,每個學生有一組不重複的學號、名字、科系、和系辦的位置。
每個學生可以看到自己是什麼科系、系辦公室在哪。

學號 名字 科系 系辦位置
M001 小明 設計系 設計大樓4樓404
M002 小美 設計系 設計大樓4樓404
M003 大雄 設計系 設計大樓4樓404
M004 一郎 資工系 新大樓12樓B室
M005 陽子 設計系 設計大樓4樓404
M006 小明 資工系 新大樓12樓B室

遇到的問題

  1. 出現很多一樣的系名和系辦位置,很浪費資料庫資源。
  2. 如果今天改設計系系辦位置,要改很多筆資料!很累!
  3. 如果有人轉系,只改科系但忘記改系辦位置就GG了。

資料庫正規化

資料庫正規化就是透過表格的設計,以解決上面那些所會遇到的問題。
正規化有很多種,基本上是為了解決不同問題。
如果問要做到什麼程度?就是看遇到什麼樣的問題。
總之,資料庫正規化是在設計資料庫表格時提供一些原則,讓之後使用方便維護且有效率。

詳細可以參考這篇。

Day 32 資料庫正規化(一~三) - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

在大部分情況下,做到正規化的1、2、3就足夠了。

整理:表格間的關係總共有幾種?

基本上就是排列組合,有4種。

  • 一對一
  • 一對多
  • 多對一
  • 多對多

比較特別的是多對多,因為在連結多對多的兩個表格時,需要多一個「連結的表格」去牽起這兩個表格。

結語

可以自己找題目來想想看表格該怎麼設計,比方說電商產品的資料或銀行資金進出的資料庫該怎麼設計。


上一篇
SQL語法整理
下一篇
Laravel裡的Model
系列文
網頁後端的30件小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言